
#pragma once 
#include <base/WrapperVtkmTypes.h>
#include "parameter/Parameter.h"
#include "base/SystemBase.h"
#include "base/Application.h"
class Application;
class SystemBase;

class OutputBase 
{
public:
	static Parameter ValidParams();

	OutputBase(Parameter& param) :
		_app(*param.get<Application*>("_app")),
		_interval(param.get<UInt32>("interval"))
	{
	};

	~OutputBase() {};

	virtual void Execute() = 0;

protected:
	//SystemBase& _sys;
	//UInt32& _current_time_step;
	UInt32 _interval = 1;

	Application& _app;
};

